/**
  * @file    :main.cpp
  * @brief   :测试程序入口
  * @author  :TMJ
  * @version :V1.0.0
  * @date    :2023-12-29
*/

#include <iostream>
#include "binary_tree_test.h"
#include "child_sibling_tree_test.h"


using namespace std;

int main() {

    cout << "=========================二叉树测试===============================" << endl;

    // 测试-二叉树-复制构造函数
    BinaryTreeTest::TestCopyConstructor();

    // 测试-二叉树-高度
    BinaryTreeTest::TestHeight();

    // 测试-二叉树-获取父节点
    BinaryTreeTest::TestParent();

    // 测试-二叉树-前序遍历
    BinaryTreeTest::TestPreorderTraversal();

    // 测试-二叉树-中序遍历
    BinaryTreeTest::TestInorderTraversal();

    // 测试-二叉树-后序遍历
    BinaryTreeTest::TestPostorderTraversal();

    // 测试-二叉树-层序遍历
    BinaryTreeTest::TestLevelOrderTraversal();

    // 测试-二叉树-是否存在结点
    BinaryTreeTest::TestExist();

    // 测试-二叉树-前序遍历与中序遍历生成二叉树
    BinaryTreeTest::TestCreateByPreorderAndInorderList();

    cout << "=========================孩子兄弟表示二叉树测试===============================" << endl;

    // 测试-子女兄弟树-建树
    TestChildSiblingTreeCreateTreeByStr();

    // 测试-子女兄弟树-高度
    TestChildSiblingTreeHeightRecursive();

    // 测试-子女兄弟树-结点数量
    TestChildSiblingTreeNodeCount();

    // 测试-子女兄弟树-先根遍历
    TestChildSiblingTreePreorder();

    // 测试-子女兄弟树-后根遍历
    TestChildSiblingTreePostOrder();

    // 测试-子女兄弟树-层序遍历
    TestChildSiblingTreeLevelOrder();

    return 0;
}